package com.zxk.enums;

import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;

/**
 * 游戏坐标枚举
 *
 * @author: 舟小亢
 * @date: 2023-08-13 2:49
 */
public enum Coord {

    /**
     * 左上角主要地图
     */
    MAJOR_MAP_XY(20, 60),

    /**
     * 左上角展示当前地图
     */
    CURRENT_MAP_XY(100, 60),

    /**
     * 活动-参加按钮与任务图标的距离
     * 截图都从中间开始，防止推荐干扰
     */
    ATTEND_TASK_DXY(200, 16),

    /**
     * 长安大地图按钮与任务图标的距离
     */
    CHANGAN_MAP_DXY(30, 0),

    /**
     * 活动中滚轮滚动位置
     */
    ACTIVITY_WHELL(555, 300),

    /**
     * 秘境降妖关卡与图标距离
     */
    SECRET_ROUND_DXY(0, -30),

    /**
     * 地图右划
     */
    MAP_SLIDE(855, 300),

    /**
     * 包裹滑动坐标
     */
    PACKAGE_WHELL(550, 300),

    /**
     * 任务列表滑动坐标
     */
    TASK_LIST_WHELL(850, 250),

    /**
     * 秘境任务拖动地图坐标
     */
    SECRET_DRAG_XY(450, 300),

    /**
     * 副本任务两个"进入"间距
     */
    INSTANCE_ACCESS_DXY(220, 0),

    /**
     * 伙伴助战界面助战组合1
     */
    ASSISTANT_FRIEND_1(815, 140),

    /**
     * 伙伴助战界面助战组合2
     */
    ASSISTANT_FRIEND_2(815, 290),

    /**
     * 伙伴助战界面助战组合3
     */
    ASSISTANT_FRIEND_3(815, 440),

    /**
     * 人物头像位置
     */
    ROLE_LOCATION(925, 80),

    /**
     * 宠物祈福中滚轮滚动位置
     */
    PET_PRAY_WHELL(415, 230),

    /**
     * 商会出售第一个物品位置
     */
    SELL_FIRST_XY(150, 190),


    ;

    /**
     * x坐标
     */
    private int x;

    /**
     * y坐标
     */
    private int y;

    Coord(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getWheelX(WinDef.HWND hwnd_0) {
        // 获取当前程序左上角X坐标
        WinDef.RECT rect = new WinDef.RECT();
        User32.INSTANCE.GetWindowRect(hwnd_0, rect);
        return x + rect.left;
    }

    public int getY() {
        return y;
    }

    public int getWheelY(WinDef.HWND hwnd_0) {
        // 获取当前程序左上角Y坐标
        WinDef.RECT rect = new WinDef.RECT();
        User32.INSTANCE.GetWindowRect(hwnd_0, rect);
        return y + rect.top;
    }

}
